System and method for media search and playback

ABSTRACT

A playback system is provided to locate and playback streaming media from network resources. The playback system includes a search module that signals a query to a network site, and receives in return a search result. The search result identifies one or more links that are selectable to open media files. A media player couples to the search module to automatically play back streaming media contained in media files located by the search result.

CROSS RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/784,446, filed Feb. 23, 2004, entitled “System and Method for MediaSearch and Playback”; which is a continuation of U.S. patent applicationSer. No. 10/251,238, filed Sep. 20, 2002, (now U.S. Pat. No. 6,725,275,issued Apr. 20, 2004), entitled “Streaming Media Search and ContinuousPlayback of Multiple Media Resources Located on a Network”; which is acontinuation of U.S. patent application Ser. No. 09/613,433, filed Jul.11, 2000, (now U.S. Pat. No. 6,519,648, issued Feb. 11, 2003), entitled“Streaming Media Search and Continuous Playback of Multiple MediaResources Located on a Network”; which is a continuation-in-part of U.S.patent application Ser. No. 09/563,250, filed May 2, 2000 (now U.S. Pat.No. 6,389,467, issued May 14, 2002), entitled “Streaming Media Searchand Continuous Playback System of Media Resources Located by MultipleNetwork Addresses”; which claims priority to U.S. Provisional PatentApplication Ser. No. 60/177,786, filed Jan. 24, 2000, entitled“Streaming Media Search and Playback System”. All of the aforementionedpriority applications are hereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to the field of streaming media content searchand playback over a network. In particular, the invention relates to acomputer system that enables a continuous streaming media playback froma distribution of sites available over a network such as the Internet.

2. Description of the Related Art

Computers currently can access streaming media on the Internet.Streaming media available on the Internet include, for example, music,video clips such as movie trailers, home movies, and animation.

Users locate streaming media on the Internet by manually selectinglinks. Typically, users browse the media sites that contain numeroussub-links. Users sometimes select through a chain of links to locate adesired media on a media link. Once located, the desired media link mayor may not contain the desired media.

Some services provide media search engine capabilities. Users may entera search request for selected media creations by an artist. The mediasearch engine then displays links to categories and/or sub-links ofmedia that are determined to match one or more criteria in the searchrequest set forth by the user. The determination of which links shouldbe displayed in response to the search request is dependent on thealgorithm used in by the search engine. Typically, links displayed tousers of current search engines are not subject to a determination ofthe quality or availability of the media associated with the medialinks. Further, the search results are outputted to the user as adisplay of links for the user's selection.

Many Internet streaming media outlets provide a limited number of sourcenodes. The sites can be unreliable when the number of users accessingthe site become congested.

SUMMARY OF THE INVENTION

Embodiments of the invention provide a media playback system for playingback streaming media from a network. The media playback systemcommunicates with third party search engines to locate streaming mediaaccording to a request generated on a client terminal. The request isconverted into a query that is signaled to the search engines. Thesearch results to the query are received by the media playback systemand parsed for media links to streaming media. The media links aresignaled to a media player for playback on the client terminal. In anembodiment, the media player is able to continuously and automaticallyplay back streaming media on the terminal using media links signaledfrom the search engines.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an architecture for a media playback system employedon a terminal, under an embodiment of the invention.

FIG. 2 illustrates a search module for signaling network queries andparsing search results, under an embodiment of the invention.

FIG. 3 illustrates another architecture illustrating additional featuresof the media playback system, under an embodiment of the invention.

FIG. 4 is a flow process for operating a media playback system, under anembodiment of the invention.

FIG. 5 illustrates another flow process for operating a media playbacksystem that parses search results returned from third party searchengines, under an embodiment of the invention.

FIG. 6 illustrates another flow process for operating a media playbacksystem to display a web page of a media file being accessed by a mediaplayer, under an embodiment of the invention.

FIG. 7 illustrates another flow process for operating a media playbacksystem so as to playback streaming media in an arranged order, under anembodiment of the invention.

DETAILED DESCRIPTION A. System Overview

Embodiments of the invention provide a system for playing back mediafrom a network on a terminal. An embodiment includes a search modulethat submits queries to network sites, and preferably to network searchengines. The network sites returns a search result comprising links thatare selectable to open associated media files. The media filespreferably match a term or criteria of the query. The search moduleidentifies one or more of the links contained in the search result. Theidentified links are signaled to a media player. The media playerautomatically play back streaming media contained in the media filesassociated with the identified links of the search result.

Embodiments of the invention may be implemented on the Internet. Otherembodiments may be implemented on any network that carries digitalinformation, such as local-area networks (LANs), Wide Area Networks(WAN), Extranets, Intranets, Internet, and wireless networks, ornetworks utilizing wireless transmissions. An example of a network foruse with an embodiment of the invention includes a network operatingunder a transmission control protocol/Internet protocol (TCP/IP).Embodiments of the invention may also be employed on proprietary WANs,such as America Online™. Thus, discussion of embodiments employed on theInternet are exemplary, and equally applicable to other types ofnetworks described above.

The client terminal for use with embodiments of the invention include anetwork enabled device coupleable to a network such as the Internet. Inan embodiment, the client terminal may include a communication port, aprocessor, a memory, and a display. The communication port may be aphysical port, such as a connector extending a modem connection. Thecommunication port may also be a wireless port, such as those configuredto transmit and receive radio frequency data communications. Examples ofclient terminals include personal computers, handheld devices such asthose operating Windows CE™ or Palm™ operating systems, and cellularphones with Internet capabilities such as Sprint PCS™ systems. Otherexamples of network enabled devices include smart appliances, such assystems including speakers and a processor to receive communicationsfrom the network.

As used herein, a module includes a program, a subroutine, a portion ofa program, a software component or a hardware component capable ofperforming a stated task or function. A module can exist on a hardwarecomponent such as a server independently of other modules, or a modulecan exist with other modules on the same server or client terminal, orwithin the same program.

In one embodiment, the system is provided on a client terminal coupledto the Internet. The network sites correspond to third-party Internetsearch engines that can locate links to media files. Examples of suchsearch engines include Yahoo®, Lycos®, as well as search enginesavailable at www.streambox.com, and www.gigabeat.com. Embodiments of theinvention may also be used with a database for storing media links, suchas described with U.S. patent application Ser. No. 09/563,250(incorporated by reference herein). The network sites may alsocorrespond to media directories, which store network addresses thatlocate media files.

Under one embodiment, the playback system on the terminal includes auser-interface to prompt users for queries. The user-queries may beentered as search terms. The search module converts the search terms ofthe user-query into a format for one or more search engines. Theformatted queries may be in the form of uniform resource locators(URLs). The search engine signals a URL corresponding to search terms ofthe user-query to a search engine on the network. In response tosubmitting the query to the search engine, the search module receives asearch-page. For the Internet, the search-page is a web-page, such as apage written in the hyper-text markup language (HTML). The search modulemay parse the search page for links to media files. The links identifiedby the search module are selectable to open a corresponding media file.The search module identifies the links on the search page and signalsthe links to a media player. In this way, a program formed by streamingmedia from a plurality of media links can be continuously played back toa user of the terminal.

The system may be used in conjunction with finding streaming mediacorresponding to audio recordings on a network such as the Internet. Forexample, the search terms may relate to music, and include artist name,song title, music genre (classical, jazz and rock), and file data type(MPEG, WAV) Alternatively, the system may be used in conjunction withfinding streaming media corresponding to video recordings, or acombination of video and audio recordings.

In an embodiment, the search module submits the user-query to aplurality of third party search engines. The search module includeslogic to convert the user-query to an individual network query directedto one or more of the search engines. Each network query may be in theform of a URL, including a network address for the respective networksearch engine, as well as arguments based on logic specific to thatnetwork search engine. The system then receives a plurality of searchresults from each of the network search engines. A parsing componentidentifies a plurality of links from the search results, where theplurality of links are each selectable to open a media file located bythe search engine. The links identified by the parsing component arethen signaled to a media player. The media player loads and accessesmedia files using the links identified from the search results. In thisway, the media player continuously plays back streaming media from thedifferent links contained in the search results.

The media player includes an application that plays back streaming mediafiles. Examples of commercially available media players include RealNetwork Player™, Apple QuickTime Player™, and Microsoft Windows MediaPlayer™.

In one implementation, the media files may be loaded on the clientterminal to play back and output music, or music videos. However, mediafiles may include any form of media accessible over a network asstreaming data. Media may also include, for example, video or animationwith story-lines, plots, characters and resemble conventional televisionor radio programming. Other examples include movie clips, home movies,movie trailers, or highlights from sporting events.

In another embodiment, the links identified from the search results arearranged into a designated order by a playlist module coupled to thesearch module. The links are arranged before being signaled to the mediaplayer. The designated order may be determined by the order of prioritydesignated by the third-party search engines. The designated order mayalternatively be provided by logic included with the media playbacksystem. For example, the media links may be arranged in an order forplayback based on a quality of the associated media files, or a durationof the media playback from the media links, or by other user-definedcriterias. The media player then sequentially and continuously playsback streaming media from the search results according to the designatedorder.

Under one embodiment, the media playback system plays back media basedon the user-query inputted by the user of the terminal. The mediaplayback system may operate in the background of the terminal, while theuser browses web-sites or operates applications on the terminal.

Still further, in another embodiment, the user-query may be based onuser-input or functions other than entering search terms. The user-querymay be a signal associated with the user opening an application. Forexample, the user may designate to hear classical music when opening aword processor. When the user opens the word processor, the user-queryis submitted automatically in the background for classical music.Alternatively, the user-query may be a collection of favorite mediaclips preferred by the user of the terminal. The system may collectinformation on the user's preferences, and then locate media clipsaccording to the preferences of the user. In another example, when theterminal is signaled into a screen-saver or idle mode, the mediaplayback system may be configured to play classical music.

Among other advantages of the invention, the user terminal accessesmedia files at various sites on a network, without requiring users tomanually select media links. For example, user-terminals may outputmusic to a user by automatically accessing one or more Internet sitescontaining media files. The music is outputted without requiring users'to view and select links to sites containing the media.

Further, embodiments of the invention may be implemented as client-sidemodules that interact with third-party search engines. Thus, client-sidemodules can be operated independent of server-side controls in searchingand playing back streaming media.

In contrast to embodiments of the invention, using other systems tosearch for Internet files containing media can be a distracting andtime-consuming experience for an end user. In many instances, such asearch will yield a series of links on a directory or web search page. Auser may have to click on each individual link, one at a time, to playeach individual media file. The selected media file may be broken andunavailable to deliver media content. Even if the number of broken linksis not high, the user must still click on the links one at a time toactivate each media file, providing at best a stop-and-go experience.

In one embodiment of the invention, a user terminal is able to receivecontinuous media streaming from multiple sites on the Internet. Multiplesites may be accessible to enable the user terminal to receive streamingmedia without any interaction required from an end user other thansignaling a request to receive streaming media. The user terminalautomatically accesses media links containing media using a mediaplayer.

Further, streaming media may be continuously outputted from multipleInternet sites on client terminals. The streaming media may be locatedand outputted based on predetermined and personalized criterias. Thecriteria may be set forth by information entered by a user of the clientterminal, or by actions performed by the user.

Another advantage of the invention is that a client terminal may beconfigured to continuously and automatically output streaming media frommultiple Internet sites by accessing third party search engines usingonly client-side applications. The use of multiple network searchengines in conjunction with client-side applications minimizes theeffects of one Internet site or search engine being unavailable on thenetwork. Further, the configuration enables terminals to be operated asnetwork radios or jukeboxes, providing streaming media continuously, atthe selection of the user, with no user-interaction required.

Another embodiment of the invention includes a recommendation modulethat suggests or submits search requests for the user of the clientterminal. The recommended search requests can be used to access the userto new types of streaming media, such as for example, differentcategories of music or artists that are unknown to the user.

Still further, an embodiment of the invention employs multiple searchengines to ensure media playback to the user that is high in quality andrelevance. This is because the media playback system is able to combinethe best and most relevant search results from different search enginesfor media playback.

B. System Architecture and Components

FIG. 1 details software components of a media playback system, under anembodiment of the invention. The media playback system is provided for aclient terminal 10, and works in conjunction with third-party searchengines 110 provided over a network 105. The media playback system maycommunicate with one or more network search engines to search andplayback streaming media from media files 120 available over network105.

The media playback system may be implemented as a client system onterminal 10. The media playback system includes a user-interface module20, a search module 30, and a media player 40. A media playeruser-interface 45 may be associated with the media player 40. The mediaplayback system may be implemented over the Internet, and the searchengines 110 may correspond to web-based search engines capable oflocating media files.

In an embodiment, user-interface module 20 displays a user-interface toprompt the user into inputting a request for media playback. The requestfor media playback may set forth criterias from the user for selecting aspecific category or type of media playback. The request is signaled tosearch module 30, which then converts the request to a network query foreach of the search engines 110. The search module accesses a searchengine rule module 35. The rule module 35 includes pre-storedinstructions for converting requests to network queries. Preferably, therule module 35 includes one or more sets of rules or instructions forconverting requests from user-input into queries specific to each of thesearch engines 110. The rule module 35 is also accessible to editorsand/or programmatic interfaces for purpose of updating rule sets andlogic used to communicate with search engines 110. Thus, the rule moduleis adaptable to communicate with new search engines, or with existingsearch engines using new technology or programming.

The media playback system communicates with multiple network sites thathost network search engines 110. The search module 30 signals thenetwork queries to the search engines 110 to cause the search engines tolocate streaming media resources over network 105. The search resultsare signaled from search engines 110 back to search module 30. Thesearch module 30 identifies media links that are selectable to openmedia files from the search results. The search module 30 signals thelinks to the media player 40. Upon being signaled, media player 40accesses and loads the media files opened by each of the links. In thisway, media player 40 plays back streaming media from the links, and usesthe media player interface 45 to display metadata information about themedia file in use.

In an embodiment, a web browser may also be used to display a networkpage located by the link signaled to the media player 40. The webbrowser may display the network page where the streaming media beingplayed back originates. Among other advantages, this enables the user ofclient terminal 10 to view advertisements copyright notices, and linksto other site available on the network site hosting the streaming mediabeing played back.

As an example, the client terminal 10 may be operated to accessstreaming media over the Internet. The query is signaled by searchmodule 30 to multiple Internet search engines, each of which returnsearch results. The network location (or URL) of media files matchingthe query are identified by search module 30 from the search results ofthe Internet search engines. The location of the media files is thensignaled from the search module 30 to the media player 40.

In this way, the media playback system causes media player 40 tocontinuously and automatically play back streaming media from resourceslocated on the network 105. For Internet applications, media player 40may be signaled to programmatically access and load media files fromweb-sites having different domains, thereby minimizing the possibilitythat network failure would interfere with the media playback system.Furthermore, the media player 40 may be controlled in the background ofclient terminal 10, enabling a user to use other resources of clientterminal 10 while the media playback system is in operation.

FIG. 2 illustrates components of search module 30, under an embodimentsuch as shown with FIG. 1. The search module 30 includes a searchmanager 32 that controls a parser component 34. Preferably, the searchmodule 30 is integrated with a web browser component residing on clientterminal 10. The search manager 32 programmatically controls the webbrowser through an application program interface (API) 33 to performfunctions of parser component 34.

The search manager 32 receives a request for media playback. The searchmanager 32 may receive the request from user-interface 20. In response,the search manager 32 accesses rule module 35 to convert the request toa network query for search engine 110. If multiple search engines 110are being used, the rule module 35 provides instructions for convertingthe request to a network query that is specific for each of the searchengines 110.

The rule module 35 converts the user's request to one or more networkqueries, specific for each search engine 110 accessed by the mediaplayback system. The rule module 35 may include multiple rule sets, withone rule set for each search engine. The search manager 32 signals thenetwork queries to one or more third-party search engines 110 (FIG. 1).

To illustrate use of search module 30 under an embodiment of theinvention, the media playback system may have access to a first web-siteproviding a first Internet search engine, and a second web-siteproviding a second Internet search engine. The search module 30 convertsa user's request, entered through the user-interface 20, into queriesformatted specifically to each of the first and second web-sites. Thequery for each of the web-sites is formatted to include logic specificto enable that particular search engine to process the user's request.Specifically, search module 30 queries to the search engine of the firstweb-site a URL having parameters, formatting, and other embedded logicto enable that web-site to process the user's search request. Likewise,search module 30 queries to the search engine of the second web-site aURL having parameters, formatting, and other embedded logic to enablethat web-site to process the search request.

Each network search engine signaled by search module 30 returns a searchresult. The search result may be in the form of one or more HTML (orother web-based language) pages, each of which contain a collection ofURL links. The search results may be determined by the respective searchengine 110 as being selectable to open media files matching the user'ssearch request. The search module 30 receives the search result fromeach network search engine 110. The response to the network queries fromthe search engines 110 are then signaled to the parser component 34. Theparser component 34 may be configured to parse the search results ofdifferent network search engines using logic that is specific to eachnetwork site. The parser component 34 identifies, from search resultprovided by each search engine 110, URLs that can be signaled to mediaplayer 40 to automatically cause media player 40 to locate and playbackstreaming media matching the search request.

In an embodiment, parser component 34 accesses logic from rule module 35to recognize the arrangement of links locating media files, as well as,for example, the location and manner of advertisement appearing onsearch results from that search engine. If multiple network sites arequeried together from one user search request, the search results canthen be parsed automatically using the parser component 34. The medialinks identified by the parser component 34 are signaled to media player40 by the search manager 32.

Each URL signaled from search engine 110 has a network protocol. Formedia files, and specifically audio media resources, types of protocolsinclude “HTTP” protocol, “PNM” protocol (RealNetworks, having .RMextensions), or “RTSP” protocol (having .RAM extensions). The URLssignaled from search engines 110 include the protocol at an initialportion of the string forming the URL. Preferably, for HTTP protocolfiles, the string portion corresponding to “HTTP” is replaced with“PNM”. This adjustment prevents media player 40 from failing as a resultof a bug in the media player 40, particularly if the media player 40 isa RealNetworks Player™.

In an embodiment, a web browser is controlled through API 33 to act asthe parser component 34. The web browser may, for example, be acontrolled or pre-configured version of a commercially available webbrowser. Examples of such web browsers include Netscape Navigator® andInternet Explorer®. In an embodiment, the web browser is controlled bythe manager module to locate search engines on the Internet.

FIG. 3 illustrates a media playback system, under another embodiment ofthe invention. The media playback system illustrated by FIG. 3 enables auser of terminal 10 to retrieve and playback streaming media fromnetwork 105. The network 105 may correspond to the Internet. In anembodiment, the media playback system is coupleable to a plurality ofsearch engines 110. The search engines 110 locate streaming media files112 on the Internet for playback on the client terminal 10.

The media playback system of FIG. 2 includes a search user-interface 120and a preference module 122. The search user-interface and thepreference module are each capable of generating a request for mediaplayback. The media playback system also includes a search manager 130that controls a plurality of engine agents 134. Each engine agent 134provides logic to convert the generated search request into a networkquery. The logic provided by the engine agent 134 is specific to aparticular Internet search engine 110. The engine agents 134 alsoidentify media links selectable to open media files from resultssignaled from the search engines 110, in response to network queries.

A playlist module 142 arranges media links identified by the engineagents for a media player 40. The playlist module 142 is used to signalmedia links to media player 40 in an arranged format. The playlistmodule 142 also filters the media links received from search engines 110for media player 40. The media links are identified from the searchresults provided by search engines 110.

The user can signal the search user-interface 120 to generate a searchrequest specifying criterias used to locate specific streaming media onthe Internet. In one embodiment, user-interface module 120 prompts theuser to enter a search request by providing a text-field for user's toenter search terms. One or more menu items may specify categories ofmedia playback to assist selecting or narrowing the search term. Forexample, a user may enter a keyword for a song title as a search term,and select a menu item for a genre of music where the song title islikely to found.

The preference module 122 programmatically determines or generates asearch request specifying one or more criterias used to search theInternet for streaming media. In an embodiment, preference module 122periodically generates and signals search requests to the search manager130. In an embodiment, the preference module 122 periodically signals astored or predetermined search request to search manager 130. Forexample, preference module 122 stores search terms previously entered bythe user. Periodically, the preference module 122 signals one or more ofthe pre-stored search terms to search manager 130.

In another embodiment, the preference module 122 observes search termsmanually entered through search user-interface 120. The preferencemodule 120 may also observe the media retrieved from the network inresponse to past searches. The observe preferences are then used todetermine future search requests. Thus, preference module 122 may beused to generate the search request based on past search requests ormedia playback.

The preference module 122 may also automatically generate a searchrequest for streaming media based on a user's action. Alternatively, theuser may specifically signal to cause preference module 122 to signal apre-stored search request to search manager 130. As an example, the usermay configure the media playback system to store favorite music artistsor albums. The user then signals the media playback system to playbackpreferred streaming media. The search request generated in response tothe user signaling the media playback system corresponds to one of theuser's preferred artist or album.

Still further, preference module 122 may be signaled to generate asearch request based on the user's preferences by one or more actions ofthe user. For example, the user may open an application on terminal 10that operates or is otherwise associated with the media playback system.In response to the user's action, the preference module generates thesearch request and signals it to the search module. As another example,the user may configure the media playback system to playback classicalmusic when a residing web browser or word process or is operated. Thus,once the web browser or word processor are launched, the preferencemodule 122 generates a search request specifying classical music.

The search manager 130 receives the search request generated by eitherthe search user-interface 120 or the preferred module 122. The searchmanager 130 controls a plurality of engine agents 134 to convert eachsearch request to a network query for the search engines 110. In anembodiment, engine agents 134 controls a web browser component toperform functions described herein using one or more rule sets of therule module 35. Alternatively, engine agents 134 may be modulesincluding logic to convert search requests to network queries forspecific search engines 110, as well as logic to parse search resultsfrom the specific search engines.

Each network query formed by one of the engine agents 134 is a uniformresource locator (URL). The URL queried to each search engine 110includes an address to locate the particular search engine 110 on theInternet. The address includes a domain portion. The URL queried to eachsearch engine also includes a query portion, including criterias setforth in the search request. Each search engine 110 may require thequery portion of the URL to include a particular format or logicspecific to that search engine. The media playback system may include aplurality of engine agents 134, each of which correspond to a searchengine 110 queried by the media playback system. The search manager 130controls the different engine agents 134 to generate network queries foreach search engine 110, based on the search request from either thesearch user-interface 120 or the preference module 122.

When queried, each search engine 110 returns one or more web-pages asthe search result. The engine agent 134 for each search engine 110parses the corresponding web-pages for media links that are selectableby the media player 40 to playback streaming media. The identified medialinks are signaled to playlist module 142. The playlist module 142arranges the media links into a playlist for media player 40.

If a search engine 110 returns multiple web-pages as the search result,the corresponding engine agent 134 may be programmed to identify anindication that one or more web-pages are included in the search result.The indication from the search result may be a link to another web pagethat provides media links matching the query to the search engine. Thelinks to the other page of search results is in a format provided bythat search engine 110. For example, the link to the next web-page ofsearch results may be labeled “Next Page”. In an embodiment, engineagents 134 parse each web-page individually for media links and signalthe identified media links to playlist module 142. When a page of asearch result is parsed by one or more of the engine agents 134, anindication to another page of results may be identified by that engineagent. After the media links from one of the web-pages contained in thesearch results are signaled to the playlist module 142, the engineagents 134 then select to receive the next page of results from thecorresponding search engines 110. The next web-page of search resultsare received by engine agents 134 while the playlist module is signalingmedia links to the media player 40.

In an embodiment, playlist module 142 filters the media links from thedifferent search results of search engines 110 for duplicate links. Theplaylist module 142 arranges the remaining media links into an order forplayback. The order may correspond to a priority order for each medialink as designated by search engines 110. This may be determined byexamining the order and priority information returned with the searchresult from each search engine 110. Typically, search results returnedfrom search engines 110 are returned in an order of priority. Forexample, some search engines return links an order indicating how wellthe file associated with the link matches the criterias in the query.The search results may also be provided with a number thatquantitatively indicates how well the associated file of the media linkmatches the criterias of the query. The order and priority informationprovided by search engines 110 is used by playlist module 142 to set theorder of playback for the combined search results.

The playlist module 142 signals a media links from a playlist to themedia playback module 140. From the perspective of the user, the medialinks are signaled from the playlist module 142 and played back by themedia player 40 in response to the search request inputted by the useror generated by the preference module 122. In an embodiment, playlistmodule 142 signals the media links sequentially to media player 40according to the order of the corresponding playlist. Thus, once themedia player 40 has loaded a media file of a first link, the playlistmodule may signal a second media link from the playlist to media player40.

In an embodiment, playlist module 142 includes an interface to enablethe user to manage the playlist. Each playlist may be managed by theuser while one of the media files is being processed by media player 40.For example, the user may preview the playlist while one of the mediafiles is being played back, and discard or rearrange the order of theremaining media files.

The media player 40 displays information about the media being playedback on media player interface 45. The information being displayed maybe metadata information provided by the media links. The media playerinterface 45 may also display controls to allow the user to control theplayback of media. For example, the controls may enable the user to skipmedia links in the playlist being used. The controls may also allow theuser to stop media playback, to repeat media playback for a particularmedia file etc.

A media playback system such as shown and described by FIG. 3 mayperform functions in a background of terminal 10, hidden from the user.The media links signaled sequentially from playlist module 142 require acertain duration of time to be played back. While one media file isplayed back, engine agents 134 may be used to retrieve additional medialinks. For example, engine agents 134 may retrieve multiple web-pagesrepresenting a single search result from one of the search engines 110,while one of the media files is being loaded and played back with themedia player.

Similarly, search manager 130 may receive additional requests for mediaplayback from either user-interface 120 or the preference module 122.The engine agents 134 may be generating new network queries whilestreaming media is being played back from another network query.

C. Flow Processes for Implementing and Using Media Playback System

FIGS. 4-8 illustrate flow processes describing operations of a mediaplayback system, such as described by FIGS. 1-3. Reference to numeralsof FIGS. 1-3 is intended to illustrate exemplary components forperforming a stated task or function.

FIG. 4 is a process describing a media playback system operated onclient terminal 10, under an embodiment of the invention. In step 310,user-input is received for generating a request to receive streamingmedia playback. The user input may be a search query, specified by, forexample, keywords and search terms entered through the user-interface.Alternatively, the query may be generated through a user's actions, suchas designated through a listener's habits or pre-specified preferences.

In step 320, a network query is generated from the user-input. Theuser-input is signaled to the search module 30. In response, the searchmodule 30 accesses rule manager 35, storing pre-defined instructionsand/or logic to convert the user-input request to a network queryspecific to each of the search engines 110.

In step 330, the search module 30 combines the search results from eachof the search engines 110. Preferably, the search results are combinedto identify only links that directly locate streaming media. These linksare selectable to immediately access and open media files. In use withmedia player 40, the links identified from the search result areselectable to output streaming media on client terminal 10.

In step 340, the links identified from the search results areconsecutively played back on the client terminal 10. This isaccomplished by signaling the links identified from the search resultsto the media player 40. Upon receiving each links, the media playerautomatically accesses and plays back streaming media located by thatlink.

FIG. 5 is a more detailed flow process for operating a media playbacksystem such as shown by FIG. 1, under another embodiment. In step 410, arequest for media playback is received on client terminal 10. Therequest may be for the media playback system to search for media fileson network 105 according to criterias or search parameters set forth bythe user. The criterias identified by the user for retrieving streamingmedia may include, for example, user-inputted search terms, categories,genre, artist name, media titles, quality of media playback, duration ofmedia playback, type of data file containing media, etc.

In step 420, a network-query is generated in response to the requestentered through the user-interface module 20. In an embodiment, searchmodule 30 receives the request from the user and accesses the searchengine rule module 35 to convert the request into network-queries forsearch engines 110. The request is converted to separate individualnetwork-queries, with one network-query for each third party searchengine 110 used by the media playback system.

In step 430, each network query generated by search module 30 and rulemodule 35 is signaled to the corresponding search engines 110 on network105. Multiple third-party search engines 110 enable the media playbacksystem to operate proficiently in the event that one or more of thesearch engines 110 are unavailable.

In step 440, search results are received from each of the search engines110. The search result from each search engine 110 may be in the form ofone-or more web-pages, with each web-page including a plurality of medialinks. The media links are selectable to open media files. The web-pagecontaining search results may also include links to advertisers andother network resources, as well as links to media files that are old,broken, and unavailable.

In step 450, the search results are parsed to separate the media linksfrom other links included with the search results. For example,web-pages returned from search engines 110 may include one or more linksto advertisers, images and other links to sites internal to theparticular search engine. The web-pages are parsed to locate only thoselinks that are selectable to open media files.

In step 460, the links identified after parsing the search results aresignaled to media player 40. In an embodiment, results returned fromeach search engine 110 are parsed using logic specific to that searchengine 110. For example, search results from one search engine 110 mayinclude links internal only to the home page of that search engine. Thesearch results may also include images, logos, advertising informationin a format or arrangement that is specific for the search engine 110.The logic used to parse search results from different search enginesindividually includes logic that has been pre-configured to account forthe differences in the results returned from the search engines 110.

As another example, search results from some Internet search engines maybe provided on more than one web-page. These web-pages may be parsedwith logic that is configured to identify the link to a next page ofsearch results from that search engine 110.

In step 470, the media player 40 access and loads the media fileslocated by each of the links identified in the search results. Then, themedia player plays back streaming media from each loaded file in step480.

In an embodiment, the links may be signaled sequentially to the mediaplayer, upon the media player loading a media file associated with eachlink. For example, once the media player loads a media file from onelink identified from one of the search results, another one of the linksfrom the search results may be signaled to the media player.

FIG. 6 illustrates an exemplary method in which a media playback systemsuch as described with FIG. 1 is operated with user-interaction in thebackground of client terminal 10. For purpose of discussion, the mediaplayback system is assumed to provide music from the Internet.

In step 510, the user signals to open the client application for themedia playback system. The client application may be opened through amanual selection by the user. Alternatively, the client application maybe opened automatically, in response to another action by the user. Instep 520, the user-interface is displayed on client terminal 10 byuser-interface module 20.

In step 530, search module 30 is accessed. The search module may beaccessed in background of client terminal 10. In an embodiment, searchmodule 30 is integrated with or provided as a web browser. Accessingsearch module 30 may include opening a hidden instance of the webbrowser. A visible instance of the web browser may also be opened, asdescribed with step 595.

The user may enter a request for media playback, which is then signaledto search module 30 in step 540. The request may specify, for example,an artist name. The user may type in the artist's name, or use key wordsusing appropriate search fields provided by the user-interface module20.

The search module 30 uses rule module 35 to signal the request as anetwork query to one or more network search engines in step 550. In step560, search module receives the search results, and parses the searchresults to identify links selectable to open media files matching thesearch request. The parser 34 may be the hidden instance of the webbrowser.

In step 565, search module 30 arranges links identified from the searchresults into a playlist. The playlist is in an order in which the linksidentified from the search results are signaled to the media player 40.

In step 570, links identified in the search results are signaled tomedia player 40 in the order determined by the playlist. In step 580, avisible instance of the web browser is opened. In step 590, media player40 plays back streaming media using the links. Concurrently in step 595,a visible instance of the web browser is used to display a web page oflink being accessed by media player 40. The media player 40 continuouslyplays back streaming media using different media links identified fromsearch engine 110.

FIG. 7 illustrates another embodiment in which the media playback systemgenerates network queries from user-input or preferences, and arranges aplaylist designating an order for media playback of media links. Thesystem is assumed to be able to communicate with search engines 110, asdescribed with FIGS. 1-3.

In step 610, a request for media playback is generated. The request formedia playback may be a user-input, such as entered through user-input120. The user-input may specify criterias for search engines 110.

In step 620, one or more network queries are generated from the searchrequest. Each of the network queries includes logic specific to a searchengine 110 on the network. In step 630, separate network queries aresignaled to the one or more search engines 110. Each network queryincludes logic specific for the search engine 110, so as to enable thesearch engine to process a search using one or more criterias set forthin the search request. The search performed by search engines 110 is formedia files matching the criterias of the search request.

In step 640, results are received from search engines 110. The searchresults include media links. The media links are such that each areselectable to open media files. When signaled to the media player 40,for example, the media links locate files that can automatically beloaded by media player 40 to output steaming media. The search resultsmay also include other network resources and internal links, such as forexample, advertisement images or links, links to affiliate sites, andother links internal to a domain of that search engine 110. The engineagent 134, for example, may identify suffix or HTML pages in the searchresults returned from search engines 110 to identify links to streamingmedia.

In step 650, the results received from each search engine 110 are parsedfor media links. The media links are identified from, for example,advertisement links and images, links to affiliates, and internal linksto the domain of that search engine 110. The search results may beparsed using a modified commercial web browser. The media links may beidentified from the search results using metadata information providedby each link in the search result. The metadata may, for example,specify the data type of the file being located by that link.

In step 660, each file located by the media link may be checked. Themedia link may, for example, be checked to determine if the media linkis broken or unavailable. To accomplish this step, each media link maybe signaled from, for example, playlist module 142 to an invisibleinstance of media player 40. If the invisible instance of media player40 is able to load a media file associated with that media link, thenthe media link is verified.

In addition, the invisible instance of media player 40 may be used toidentify metadata information associated with the media file. Themetadata information may be used to check that the media file issupposed to be signaled to media player 40. For example, the metadatainformation of the media links may ensure that the links are ofsufficient length. As an example, if music clips are being played back,the metadata information of the music clips may be used to identifywhether the media clip is less than a minute long. If the music clip isless than a minute, the music clip can be assumed to be promotional orincomplete, and discarded.

In step 670, the media links may be arranged in a designated order. Thisstep may be accomplished by playlist module 142. In step 680, the medialinks identified from the results of search engines 110 are signaled tomedia player 40. Preferably, the media links are signaled to mediaplayer 40 sequentially, in an order determined by playlist module 40.

In this way, media player 40 plays back streaming media continuouslyfrom different media sites on the network. In an implementation, mediaplayer 40 may automatically playback streaming media continuously fromdifferent network sites that access media files. One or more of theaddresses used to locate media files for media player 40 may includeseparate domains. Further, the addresses used to locate the differentstreaming media files may be located by different search engines 110.Many search engines 110 have access to databases having differentcollections of streaming media, Another advantage provided by a mediaplayback system described with embodiments of the invention is that theycan be used to aggregate the various databases for streaming mediamatching a user's request.

D. Alternative Embodiments

Embodiments described with FIGS. 1-3 assume a client terminal 10equipped with modules and other components forming the media playbacksystem. In other embodiments, one or more of the components describedabove may be employed on a server, rather than the terminal. Forexample, search manager 32 may be provided on a server. The searchmanager 32 is signaled the search request, and forms the network queryon the network side. The network queries to the search engines 110 isthen signaled from the server, rather than the client.

The search manager 32 may control a web browser on the client terminal10 to parse the search results from the different search engines 110.The search manager 32 may signal API 33 of a web browser to parse thesearch results. In other embodiments, however, parser component 34 isemployed on the server as well, rather than on client terminal 10.

Similarly, the components of media playback system shown by FIGS. 1 and3 may be employed on servers that communicate with terminal 10. Thecomponents may combine to signal network queries to third party searchengines 110. The network media playback system may parse the searchresults from search engines 110, and then signal media links to mediaplayer 40.

In one embodiment, media player 40 resides on client terminal 10 toplayback streaming media for the user. The user-interface module 20 alsoresides on terminal 10, while all other modules and components of themedia playback system reside on a server that is coupleable to theterminal 10.

In another embodiment, a recommendation module is implemented with themedia playback system. The recommendation module suggests or recommendssearch requests for the user. The recommendation module is a rule-basedsystem that recommends media for the user based on user-interaction withthe media playback system. Preferably, the recommendation module resideson a server that communicates with terminal 10. The recommendationmodule may be coupleable to the search manager 130, in a media playbacksystem such as illustrated with FIG. 3.

In one example, the recommendation module may observe search criteriasinputted by the user, and/or observe media playback experienced by theuser. The recommendation module generates requests for the user based onthe observations. The recommendation module may, for example, signal arecommended search criteria or term to search manager 130 (in a systemsuch as shown by FIG. 3). The recommendation module causes the searchmanager 130 to search for specific media links through recommendationsbased on previous user-interaction. Alternatively, the recommendationmodule may signal the search request based on previously providedinformation, preferences, or configurations provided by the user ofterminal 10.

In one example, the recommendation module observes a user's request fora particular artist. The recommendation module uses a rule-based systemor logic to suggest another artist that may interest the user.Similarly, the recommendation module may observe that the user prefers aparticular genre, like classical music. The recommendation module maysuggest another type of genre, such as classical jazz, or alternativelya particular sub-genre (such as modern classical music), for the user.

The suggestions and recommendations from the recommendation module maybe signaled automatically to search manager 130 for playback.Alternatively, the recommendations may be signaled to the user foruser-selection or input before being forwarded to the search manager130.

In this way, the recommendation module may act a s smart-agent to helpthe user discover new music. The recommendation module also encouragesthe user to visit new network sites hosting media links.

E. Conclusion

The foregoing description of various embodiments of the invention hasbeen presented for purposes of illustration and description. It is notintended to limit the invention to the precise forms disclosed. Manymodifications and equivalent arrangements will be apparent.

1. A media playback system comprising: a search module that signals auser-query to a first network site to receive a search result, and inresponse to receiving the search result, identifies a first linkcontained in the search result that is selectable to open media files;and a media player coupled to the search module to automatically playback streaming media contained in a first media file of the first linkcontained in the search result.
 2. The media play back system of claim1, wherein the search module includes a parser to parse the searchresult for the first link.
 3. The media playback system of claim 1,wherein the search module searches a media directory comprising aplurality of addresses, each address locating a network site foraccessing a media file, the search module retrieving from the mediadirectory at least a first address for the first network site based onthe user-query.
 4. The media playback system of claim 1, furthercomprising a user-interface to receive the user-query, and to signal theuser-query to the search module.
 5. The media playback system of claim1, wherein the search module includes a web browser component, and thesearch module accesses a first web site in response to the user-query.6. The media playback system of claim 1, wherein the search modulesignals the user-query to the first network site to identify the firstlink contained in the search result for opening media files containingaudio digital recordings.
 7. The media playback system of claim 1,wherein the search module signals the user-query to the first networksite to identify the first link contained in the search result foropening media files containing video and/or audio digital recordings. 8.The media playback system of claim 1, wherein the search module signalsthe user-query to a search engine of the first network site in the formof a uniform resource locator.